home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz Kr0nlcKLeZ 1 / HaCKeRz Kr0nlcKLeZ.iso / hacking / virriiorg / udp.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-23  |  1.2 KB  |  39 lines

  1. #include "tcpip.h"
  2.  
  3. void sendpack(char *fromhost, int fromport, char *tohost, int toport)
  4. {
  5.  char *packet;
  6.  char *udppacket;
  7.  static struct sockaddr_in local, remote;
  8.  static int sock = 0;
  9.  int totsent = sizeof(struct iphdr) + sizeof(struct udphdr);
  10.  if (!sock) {
  11.    resolve_address((struct sockaddr *)&local, fromhost, fromport);
  12.    resolve_address((struct sockaddr *)&remote, tohost, toport);
  13.    sock = socket(AF_INET, SOCK_RAW, 255);
  14.    if (sock == -1) { perror("Getting raw socket"); exit(-1); }
  15.   }
  16.    udppacket = create_udp(local.sin_addr.s_addr, remote.sin_addr.s_addr, 
  17.     local.sin_port, remote.sin_port, NULL, 0);
  18.    packet = create_ip(local.sin_addr.s_addr, remote.sin_addr.s_addr,
  19.     17, 24, 4, udppacket, 20);
  20.   {
  21.    int result;
  22.  
  23.    result = sendto(sock, packet, totsent, 0, (struct sockaddr *)&remote, 
  24.     sizeof(remote));
  25.    if (result != totsent) { perror("sending packet"); }
  26.   }
  27. }
  28.  
  29. main(int argc, char **argv) {
  30. if (argc!=5) {
  31.  printf("usage: %s <from host> <from port> <to host> <to port>\n", argv[0]);
  32.  exit(-1);
  33. }
  34.  printf("fake: %s.%d --> %s.%d\n", argv[1], atoi(argv[2]), argv[3], 
  35.     atoi(argv[4]));
  36.  
  37.  sendpack(argv[1], atoi(argv[2]), argv[3], atoi(argv[4]));
  38. }
  39.